/**
 * [validate js验证函数]
 * @param  {[type]} pattern [description]
 * @param  {[type]} val     [description]
 * @return {[type]}         [description]
 */
function validate(pattern,val){
	if(pattern.test(val)){
		return true;
	}else{
		return false;
	}
}



function checkRange($val,range){
	return $val >= parseFloat(range[0]) && parseFloat(range[1]);
}

function addCss($obj,status,mess){
//添加一个样式
	if(status){
		//添加成功的css样式
		if(mess){
			$obj.nextAll(".warning").addClass('hide').hide();
			$obj.removeClass("border-orange");
		}else{
			$obj.nextAll(".warning").addClass('hide').hide();
			$obj.removeClass("border-orange");
		}
	}else{
		if(mess){
			//添加失败的css样式
			$obj.nextAll(".warning").html(mess).removeClass('hide').show();
			$obj.addClass("border-orange");
		}else{
			$obj.nextAll(".warning").removeClass('hide').show();
			$obj.addClass("border-orange");
		}	 
	}
}
 
function check($obj,pattern,mess){
	//var name = $obj.parent().prev().html();
	if(validate(pattern,$obj.val().trim())){
		addCss($obj,true,mess);
		// 添加成功的样式
		return true;
	}else{
		addCss($obj,false,mess);
		return false;
		// 添加失败的样式
	}
}
// check是一个函数，（input对象，正则，提示内容）

//表单失焦的事件
$('input[type="text"],input[type="date"],input[type="password"],input[type="hidden"]').blur(function(){
	
	//加正则
	var intPat = /^\d*$/ig,
		intage =  /^(1[89]|[2-5][0-9]|60)$/,
		input  = $(this),
		floatPat = /^\d{1,3}(\.\d+)?$/ig,
		reqPat = /^[^\s]+/ig,
		flag   = true,
		intRange = [0,400],
		range  = [0,100],
		checkIntRange = false,
		//邮箱
		ema = /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/,
		//手机号
		pho =/^1[3578]\d{9}$/,

		//固定电话
		tel = /^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/,
		//手机号或者邮箱
		pore = /^([a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+)|([1]\d{10})$/,
		//密码
		pass = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$/,
		//qq号码
		q = /^\d{3,12}$/,
		//身份证
		//idcard=/^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9Xx])$/,
		idcard = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/,
		//1000的倍数
		bs = /^[1-9]\d*$/ig;
		// bs=/^[1-9][0-9]*0{3}$/,
		arr = [];

	//判断有没有给定范围
	if($(this).data('range')){
		intRange = $(this).data('range').split(',');
		if($(this).hasClass('valrange')){
			checkIntRange = false;
		}else{
			checkIntRange = true;
		}
		
	}else{
		checkIntRange = false;
	}

	if(flag){
		if(input.hasClass('required')){
			flag = check($(this),reqPat);
		}
	}
	//phonee
	//check函数，是匹配正则添加样式，匹配的是reqPat；
	//if(flag){
	//	if(input.hasClass('input的class名')){
	//		flag = check($(this),正则名,'输出内容!');
	//	}
	//}
    //邮箱
	if(flag){
		if(input.hasClass('email')){
			
			flag = check($(this),ema,'请填写正确邮箱!');
		}
	}



	//固定电话
	if(flag){
		if(input.hasClass('telphone')){
			flag = check($(this),tel,'请填写正确固定电话!');
		}
	}
	//手机号
	if(flag){
		if(input.hasClass('mobile')){
			flag = check($(this),pho,'	请输入正确手机号码!');
		}
	}

	//密码
	if(flag){
		if(input.hasClass('password') || input.hasClass('repeatPassword')){
			flag = check($(this),pass,'请输入6到16的字母+数字密码!');
		}
	}
	//手机号或邮箱pore
	if(flag){
		if(input.hasClass('poree')){
			flag = check($(this),pore,'请输入注册邮箱/注册手机!');
		}
	}
	//qq号码
	if(flag){
		if(input.hasClass('qqq')){
			flag = check($(this),q,'请输入正确的QQ号!');
		}
	}
	// 身份证
	if(flag){
		if(input.hasClass('idcard')){
			flag = check($(this),idcard,'请输入正确身份证号!');
		}
	}
	//1000的倍数
	if(flag){
		if(input.hasClass('beishu')){
			flag = check($(this),bs,'金额须为1000的整数倍');
		}
	}



	
	if(flag){
		if(input.hasClass('int')){
			flag = check($(this),intPat,'必须为数字');
		}

		var number = parseFloat($(this).val());
		if(flag){
			if(checkIntRange){
				if(number < intRange[0] || number > parseFloat(intRange[1])){
					addCss($(this),false,'必须为'+intRange[0]+'-'+intRange[1]+'的数字');
					flag = false;
				}else{
					addCss($(this),true,null);
					flag = true;
				}
			}
		 }
	}


	if(flag){
		var number = parseInt($(this).val().trim().length);

		if(input.hasClass('valrange')){
			if(!checkIntRange){
				if(number < parseInt(intRange[0]) || number > parseInt(intRange[1])){
					addCss($(this),false,'长度必须为'+intRange[0]+'-'+intRange[1]+'的字符');
					flag = false;
				}else{
					addCss($(this),true,null);
					flag = true;
				}
			}
		}
	}

	//年龄区间
	if(flag){
		if(input.hasClass('intage')){
			flag = check($(this),intage,'必须在18-60区间内');
		}
	}

	if(flag){
		if(input.hasClass('float')){
			var number = parseFloat($(this).val());
			flag = check($(this),floatPat,'必须为0-100的数字');
			if(flag){
				if(number < range[0] || number > parseFloat(range[1])){
					addCss($(this),false,'必须为0-100的数字');
					flag = false;
				}else{
					 addCss($(this),true,null);
					 flag = true;
				}
			}
			
		}
	}

	if(flag){
		if(input.hasClass('repeatPassword')){
			var re_password = $(this).val();
			// var password = $('.password').val();
			var password = $(this).parent().prev('li').find('.password').val() || $('.password').val();
	
			if(re_password != password){

				addCss($(this),false,'两次输入密码不一致！');
				flag = false;
			}else{
				addCss($(this),true,'');
				flag = true;
			}
			
			
		}
	}
	
})

//添加对文本域的支持
$('.submit_form textarea').blur(function(event){
	var input = $(this),
		flag  = true;

	//判断有没有给定范围
	if($(this).data('range')){
		intRange = $(this).data('range').split(',');
		checkIntRange = true;
	}else{
		checkIntRange = false;
	}


	//加正则
	if($(this).val().trim().length > 0){
		addCss($(this),true,'必填');
	}else{
		addCss($(this),false,'必填');
	}


	if(flag){
		var number = parseInt($(this).val().trim().length);
		if(input.hasClass('valrange')){
			if(checkIntRange){
				if(number < parseInt(intRange[0]) || number > parseInt(intRange[1])){
					addCss($(this),false,'长度必须为'+intRange[0]+'-'+intRange[1]+'的字符');
					flag = false;
				}else{
					addCss($(this),true,null);
					flag = true;
				}
			}
		}
	}
})
//点击重置按钮进行重置
$('.btn-reset').click(function(){
	location.href = location.href;
})

//点击取消按钮回到上一页
$('.btn-reset1').click(function(){
	location.href = history.go(-1);
});

//点击提交按钮先验证
$('.submit_form').submit(function(e){
	var e = window.event || e,
	   errNum = 0;
	if(e.preventDefault){
		e.preventDefault();
	}else{
		window.event.returnValue = false; 
	}

	//触发验证
	
	$('.submit_form input').trigger('blur');
	$('.submit_form textarea').trigger('blur');
	errNum = $('span.warning:visible').length;
	// console.log(errNum);
	// return;
	//没有错误就提交表单
	if(errNum == 0){
		$(this).get(0).submit();
	}	

})

